<?php
    class CommandeDetail {
        //Alias sur table : cd
        public $id_commande_detail;
        public $commande;
        public $produit;
        public $quantite;
        public $produit_libelle;
        public $produit_reference;
        public $produit_prix_unit;
        public $produit_tva;
        public $promotion;

        //Constructeur complet
        //(Commande)commande, (Produit)produit, (Tva)produit_tva
        public function __construct($id_commande_detail, $commande, $produit, $quantite, $produit_libelle, $produit_reference, 
                                    $produit_prix_unit, $produit_tva, $promotion) {
            $this->setId($id_commande_detail);
            $this->setCommande($commande);
            $this->setProduit($produit);
            $this->setQuantite($quantite);
            $this->setProduitLibelle($produit_libelle);
            $this->setProduitReference($produit_reference);
            $this->setProduitPrixUnit($produit_prix_unit);
            $this->setProduitTva($produit_tva);
            $this->setPromotion($promotion);
        }
		
        //Ajoute un objet CommandeDetail dans la BDD
        //Paramètre : aucun
        //Retourne (CommandeDetail)
        public function add() {
            $sql =  'INSERT INTO commande_detail (id_commande, id_produit, quantite, produit_libelle, produit_reference, produit_prix_unit, 
                                    produit_id_tva, promotion) VALUES
                    ('.intval($this->commande->getId()).', '.intval($this->produit->getId()).', '.intval($this->quantite).', 
                    "'.Db::insertion($this->produit_libelle).'", "'.Db::insertion($this->produit->getReference()).'", 
                    "'.Db::insertion($this->produit_prix_unit).'", "'.intval($this->produit_tva->getId()).'", 
                    '.intval($this->promotion).')';
            $this->setId(Db::Execute($sql));
            
            $this->produit->setStock($this->produit->getStock() - $this->quantite);
            $this->produit->update();
            
            return $this;
        }
        
        //GETTERS ET SETTERS
        public function getId() {return $this->id_commande_detail;}
        public function getCommande() {return $this->commande;}
        public function getProduit() {return $this->produit;}
        public function getQuantite() {return $this->quantite;}
        public function getProduitLibelle() {return $this->produit_libelle;}
        public function getProduitReference() {return $this->produit_reference;}
        public function getProduitPrixUnit() {return $this->produit_prix_unit;}
        public function getProduitTva() {return $this->produit_tva;}
        public function getPromotion() {return $this->promotion;}

        public function setId($temp) {$this->id_commande_detail = intval($temp);}
        public function setCommande($temp) {$this->commande = $temp;}
        public function setProduit($temp) {$this->produit = $temp;}
        public function setQuantite($temp) {$this->quantite = intval($temp);}
        public function setProduitLibelle($temp) {$this->produit_libelle = $temp;}
        public function setProduitReference($temp) {$this->produit_reference = $temp;}
        public function setProduitPrixUnit($temp) {$this->produit_prix_unit = $temp;}
        public function setProduitTva($temp) {$this->produit_tva = $temp;}
        public function setPromotion($temp) {$this->promotion = intval($temp);}
    }

?>